1. Field
The present disclosure relates in one exemplary aspect to implementing learning in artificial intelligence or robotic apparatus.
2. Description of Related Art
Current methods for the behavioral control of artificial intelligence or robotic devices involves text-based coding, graphical programming, or direct input machine control panels.
The text-based programming environment imposes few constraints on an operator. For example, an operator may implement virtually any behavior that the operator (or his team) can conceptualize and translate into formal programming code. The robotic device's behavior is entirely guided by the code written into its memory. Typical text-based programming disadvantageously requires significant background knowledge of the functions and logical form of the language. Using this knowledge, programmers then translate the desired behavior of a robotic device into a logical form compatible with functions of the language. For example, a programmer interested in creating a robotic device may use the Robot Operating System (ROS). The programmer may the compile routines for controlling the robotic device in Java®, C/C++, MATLAB®, etc. The ROS community also supplies a host of application programming interfaces (APIs) and other tools to assist programmers developing applications for robots.
Another example, Arduino, is a popular open-source microcontroller board line. The Arduino microcontroller can be programmed through the Arduino Integrated development Environment (IDE). The Arduino IDE includes a C/C++ library that provides custom functions for setting up the functions of the microcontroller board. The provided C/C++ library greatly simplifies programming the microcontroller. With knowledge of microcontroller operation and an intermediate knowledge of the C/C++ programming environment, a user may setup control functions for the Arduino microcontroller.
Unfortunately, the foregoing programming environments are inaccessible to users lacking formal programming knowledge. Graphical programming paradigms have been used to lessen the knowledge/experience barrier for entry into the programming arts. LabView® is an example of a widely used programming package designed for the control of laboratory equipment and general programming. LabView uses a layout similar to a circuit diagram to map out the functions performed by a program. The user lays out a series of interconnected functions and loops that run from a starting point to a terminal point, break, or terminal condition setup by the user. Conceptually, LabView is similar to text based programming environments described supra in that it follows the same logical guidelines, albeit with a graphical input layout.
Another system, LEGO® Mindstorms provides a programmable LEGO brick (Pbrick) that may be programmed or controlled via a computer link. The LEGO Mindstorms each include a flow-chart-based programming language called the Robotic Command eXplorer (RCX) code for use with the Pbrick. The language is generally similar in operation to LabView because a user lays out their commands graphically in the program editor. However, the RCX is more linear in its operation than LabView (execution proceeds from beginning to end with fewer allowed parallel processes), and a smaller number of functions are available to the user. The firmware of the Pbrick can be altered to be used with ROBOLAB. ROBOLAB is an educational firmware version based on LabView. Furthermore, a wealth of other third party firmware products are available and allow for programming of the Pbrick in a number of programming environments (e.g. Java® and C/C++).
Based on the foregoing, there is a salient need for, inter alia, a more intuitive and easier-to-use learning and interface paradigm for artificial intelligence/robotic systems.